package java学习.实训.day08;

import sun.misc.Signal;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * **************
 * 项目名称: 蓝桥杯 <br/>
 * 文件名称:  <br/>
 * 文件描述: 这里添加您的类文件描述，说明当前文件要包含的功能。 <br/>
 * 文件创建：刘世锦 <br/>
 * 创建时间: 2022/6/16 <br/>
 *
 * @version v1.0 <br/>
 * @update [序号][日期YYYY-MM-DD][更改人姓名][变更描述]<br/>
 * *************
 */
/*
    1. 模仿Integer类（参照API文档中的方法），编写一个类似的包装类Int
    ---本作业主要锻炼封装
    2. 定义一个交通信号灯枚举类型（Signal）,有红灯，黄灯，绿灯。
 */
public class day08 {
    public static void main1(String[] args) {
        Int i = new Int(101);
        System.out.println(i);
        System.out.println(i.byteValue());
        System.out.println(i.shortValue());
        System.out.println(i.intValue());
        System.out.println(i.longValue());
        System.out.println(i.doubleValue());

        System.out.println(Int.MAX_VALUE);
        System.out.println(Int.MIN_VALUE);
        System.out.println(Int.max(10,20));
        System.out.println(Int.min(10,20));
        System.out.println(Int.sum(10,20));

//        Signal s = Signal.Red;
//
//        switch (s){
//            case Red:
//                System.out.println("红灯停");
//                break;
//            case Green:
//                System.out.println("绿灯行");
//                break;
//
//            case Yellow:
//                System.out.println("黄灯等一等");
//                break;
//
//        }
//        System.out.println( Signal.Red.next());
    }

    /**
     * 面试题：
     * 有一堆数据，数量很多，但你是不知道里面是否有重复的数据。你有什么办法判断这堆数据里是否有重复数据？

     * 答：创建一个List，把所有数据存入list中。
     * 然后创建一个Set，把list作为构造方法参数。
     * 如果set的size()和list的size() 值相等 说明没有重复数据，如果二者不同，说明有重复数据。
     * ---之所以不同，是因为数据存入set之后，被去重了，所有size会变小。
     * @param args
     *
     * 作为一个容器不能取元素怎么办？
     *
     * 可以把set转换为list（使用List实现类的构造方法）， 然后通过下标访问list即可。
     */
    public static void main(String[] args) {
        List<String> list2 = new ArrayList<>();
        list2.add("1221");
        list2.add("1");
        list2.add("1");
        list2.add("1");
        list2.add("qrdw");
        list2.add("我");
        System.out.println(list2.size());        //System.out.println(set.size());
        Set<String> set = new HashSet<>(list2);
        set.add("1");
        set.add("1");
        set.add("qrdw");
        set.add("我");
        List<String> list = new ArrayList<>(set);
        System.out.println(list.get(1));
        list.forEach(System.out::print);

    }
}
//enum  Signal{
//
//    Red{
//        @Override
//        public Signal next(){
//            return Yellow;
//        }
//    },Yellow{
//        @Override
//        public Signal next(){
//            return Green;
//        }
//    },Green{
//        @Override
//        public Signal next(){
//            return Red;
//        }
//    };
//
//
//    abstract Signal next();
//    @Override
//    public String toString() {
//        return  name();
//    }
//}